package com.suning.sawp.intf.task;

import java.util.List;

import org.apache.poi.ss.usermodel.Sheet;

import com.suning.sawp.dto.common.QueryResult;
import com.suning.sawp.dto.common.ReturnMsg;
import com.suning.sawp.dto.precharge.CommonRtn;
import com.suning.sawp.dto.task.AddTaskRtn;
import com.suning.sawp.dto.task.CategoryBean;
import com.suning.sawp.dto.task.MainPushTaskRtn;
import com.suning.sawp.dto.task.QueryCommInfo;
import com.suning.sawp.dto.task.QueryRegionAssign;
import com.suning.sawp.dto.task.RegionTaskPercentBean;
import com.suning.sawp.dto.task.TaskHqInfoRtn;

public interface MainPushTaskManageService {

    /**
     * 
     * 功能描述: 总部查询主推任务列表<br>
     * 〈功能详细描述〉
     * 
     * @param taskTopic
     * @param startTime
     * @param endTime
     * @param pageNo
     * @param pageSize
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<QueryResult<MainPushTaskRtn>> queryMainPushTask(String taskTopic, String startTime, String endTime,
            Integer pageNo, Integer pageSize);
    
    /**
     * 
     * 功能描述: 新增主推任务<br>
     * 〈功能详细描述〉
     *
     * @param taskTopic
     * @param startTime
     * @param endTime
     * @param catagory
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<AddTaskRtn> addMainPushTask(String taskTopic, String startTime, String endTime,String categoryCode,String categoryName,String staffId);
    
    /**
     * 
     * 功能描述:导入大区目标占比 <br>
     * 〈功能详细描述〉
     *
     * @param sheet
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<CommonRtn> importRegionPercent(Sheet sheet,Integer taskNo);
    
    /**
     * 
     * 功能描述: 根据任务编号查询大区目标占比<br>
     * 〈功能详细描述〉
     *
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<RegionTaskPercentBean>> queryRegionPercent(Integer taskNo);
    
    /**
     * 
     * 功能描述: 导入主推商品<br>
     * 〈功能详细描述〉
     *
     * @param file
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<CommonRtn> importRegionCommodity(Sheet sheet,Integer taskNo,String staffCode);
    
    /**
     * 
     * 功能描述: 查询主推商品列表<br>
     * 〈功能详细描述〉
     *
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<QueryResult<QueryCommInfo>> queryCommInfoHq(Integer taskNo,Integer pageNo,Integer pageSize);
    
    /**
     * 
     * 功能描述: 查询大区分配详情<br>
     * 〈功能详细描述〉
     *
     * @param commClassifyCode 商品归类编码
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<QueryRegionAssign>> queryRegionAssign(Integer commClassifyCode,Integer taskNo);
    /**
     * 
     * 功能描述: 总部更新大区商品目标台数<br>
     * 〈功能详细描述〉
     *
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<CommonRtn> updateCommHqDestNum(List<String> list,Integer taskNo);
    /**
     * 
     * 功能描述: 总部更新大区分配台数<br>
     * 〈功能详细描述〉
     *
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<CommonRtn> updateCommRegionDestNum(List<String> list,Integer commClassifyCode,Integer destNumHq,String staffId);
    /**
     * 
     * 功能描述: 更新目标占比<br>
     * 〈功能详细描述〉
     *
     * @param list
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<CommonRtn> updatePercent(List<String> list,Integer taskNo,String staffId);
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<CommonRtn> deleteTaskByTaskNo(Integer taskNo,String taskTopic,String staffId);
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param commClassifyCode
     * @param commName
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<CommonRtn> deleteCommBycommCode(Integer commClassifyCode,String commName,String staffId);
    
    /**
     * 
     * 功能描述: 总部查询主推任务信息<br>
     * 〈功能详细描述〉
     *
     * @param taskNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<TaskHqInfoRtn> queryTaskHqInfo(Integer taskNo);
    /**
     * 
     * 功能描述:查询品类列表 <br>
     * 〈功能详细描述〉
     *
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<CategoryBean>> queryCategoryList();
    
}
